package com.itguigu.rabbitmq.two;

import com.itguigu.rabbitmq.utils.RabbitMqutil;
import com.rabbitmq.client.Channel;

import java.io.IOException;
import java.nio.charset.StandardCharsets;
import java.util.Scanner;
import java.util.concurrent.TimeoutException;

/**
 * @Date 2021/7/18 11:17
 * @Created by wangle
 * @Description
 */
public class Task01 {
    //队列名称
    public static final String QUEUE_NAME = "hello";

    //发送消息
    public static void main(String[] args) throws IOException, TimeoutException {

        Channel channel = RabbitMqutil.getChannel();

        //队列的声明
        /*     生成一个对列
         * 1. 对列名称
         * 2. 是否需要保存消息，对列的消息是否持久化，默认不持久化
         * 3.该对列是否只供一个消费者消费，是否共享，如果是true 则可以共享，false则不可以
         * 4.是否自动删除，最后一个消费者断开连接后，该连接是否自动删除true自动删除，false不自动删除
         * 5.关于延迟消息，死信消息等，暂时不写
         * */
        channel.queueDeclare(QUEUE_NAME, false, false, false, null);

        //从控制台接受消息
        Scanner scanner = new Scanner(System.in);
        while (scanner.hasNext()) {

            String message = scanner.next();
            channel.basicPublish("", QUEUE_NAME, null, message.getBytes(StandardCharsets.UTF_8));
            System.out.println("发送完成：" + message);
        }


    }

}
